1. Field of the Invention
The present invention relates to automated performance analysis and optimization of software systems. More particularly, the invention is directed to automated tools for evaluating software operation under workload conditions and providing software reconfiguration suggestions.
2. Description of the Prior Art
By way of background, software system performance is dependent on the interaction of the software with available resources, and with resource usage patterns. Software analysis and optimization attempts to improve a software system's resource utilization capabilities. Existing techniques include:                i) Monitoring of software operation and dynamic tuning of known resources;        ii) Collection of system statistics to understand workload/system behavior, followed by expert analysis of the patterns and recommendation of software tuning or reconfiguration (within existing system capabilities) for performance optimization; and        iii) Benchmarking and simulations to determine impacts of software tuning or reconfiguration (within existing system capabilities) on performance.        
Such dynamic tuning techniques are time consuming and dependent on knowledgeable individuals (to make recommendations, run benchmarks, tune applications/systems), or require special infrastructure. Moreover, existing dynamic tuning solutions work within the confines of the tunable parameters that are included in the system environment. For example, the solution may tune the CPU or the in-memory footprint allowed for an application, but cannot recommend modifications of the system itself, such as adding or removing hardware or recompiling the application or the underlying operating system.
An automated mechanism that provides recommendations for system optimization in an efficient manner without the aforementioned limitations would be desirable.